package com.dance.springcloud.service.impl;

import com.dance.springcloud.service.IMessageProvider;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.messaging.Source;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.MessageChannel;

import javax.annotation.Resource;
import java.util.UUID;

/**
 * 定义消息的推送管道
 * Source.class 消息的生产者
 *  使用EnableBinding绑定
 */
@EnableBinding(Source.class)
public class MessageProviderImpl implements IMessageProvider {

    /**
     * 消息发送管道
     * 自动注入消息的输出通道
     */
    @Resource
    private MessageChannel output;

    @Override
    public String send() {
        String serial = UUID.randomUUID().toString();
        // 使用通道发送消息 消息需要使用MessageBuilder包装
        output.send(MessageBuilder.withPayload(serial).build());
        System.out.println("*****serial: " + serial);
        // 我感觉没有返回值不好 新改的
        return serial;
    }
}